package com.vca.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.vca.common.model.user.UserCard;
import com.vca.common.request.CardPageRequest;
import com.vca.common.request.RemarkCardsRequest;
import com.vca.common.response.CardPageResponse;
import com.vca.common.response.CardProductResponse;

import java.util.List;

/**
 * <p>
 * 礼品卡用户关系表 服务类
 * </p>
 *
 * @author chenBing
 * @since 2022-11-10
 */
public interface UserCardService extends IService<UserCard> {

    /**
     *@Description:礼品卡过期提前通知
     *@author:chenbing
     *@date 2022/12/30 14:16
     */
    void giftCardBeOverdue();

    /**
     *@Description:礼品卡过期改变状态
     *@author:chenbing
     *@date 2023/1/28 10:41
     */
    void giftCardOverdued();

    /**
    * @description 礼品卡管理分页
    * @param request
    * @author Li
    * @date 2023/8/29 15:14
    * @return {@link PageInfo}<{@link CardPageResponse}>
    */
    PageInfo<CardPageResponse> pageCard(CardPageRequest request);

    /**
     * @description 礼品卡管理分页
     * @param request
     * @author Li
     * @date 2023/8/29 15:14
     * @return {@link PageInfo}<{@link CardPageResponse}>
     */
    List<CardPageResponse> cardPage(CardPageRequest request);

    /**
    * @description 生成礼品卡查询分页
    * @param request
    * @author Li
    * @date 2023/8/29 15:14
    * @return {@link PageInfo}<{@link CardProductResponse}>
    */
    PageInfo<CardProductResponse> cardProductPage(CardPageRequest request);

    /**
    * @description 生成礼品卡
    * @param id 生成礼品卡id
    * @param number 生成数量
    * @author Li
    * @date 2023/8/29 15:15
    * @return {@link boolean}
    */
    boolean generateCards(Integer id,Integer number);

    /**
    * @description 批量标记被赠送礼品卡
    * @param ids id列表
    * @author Li
    * @date 2023/8/29 17:59
    * @return {@link boolean}}
    */
    boolean taggedCards(List<Integer> ids);

    boolean remarkCards(RemarkCardsRequest request);
}
